home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1983-08-10 | 3.3 KB | 64 lines
1 REM STUDENT'S T-TEST (two-tailed) 2 REM Written by Tracy L. Gustafson, M.D. 3 REM Round Rock, Texas. Version 2.0, 1982 5 CLEAR: OPTION BASE 1: DEFINT A-C,N,T,Z: DEFSTR D 8 SCREEN 0: WIDTH 80: COLOR 7,0,1: CLS: KEY OFF 10 DEF SEG=&H40 11 A=PEEK(&H17): IF NOT(A AND &H20) THEN POKE &H17,(A AND (NOT &H20)) OR &H20 12 DEF SEG 15 PRINT TAB(20);"KEY";STRING$(31,205);"CLOSE" 16 PRINT TAB(20);"OPEN STUDENT'S T-TEST (two-tailed) OPEN" 18 PRINT TAB(20);"SCREEN";STRING$(31,205);"LOAD" 20 AP=CSRLIN: PRINT TAB(10);"What is the name of the DATAFILE you wish to analyze?" 25 PRINT TAB(7);"(Press RETURN if you wish to skip directly to T evaluation)" 30 LOCATE AP,67: INPUT "",FILE$: ON ERROR GOTO 450 35 IF FILE$<>"" THEN 50 ELSE AF=1 40 PRINT: PRINT :PRINT TAB(10);:INPUT;"Enter T value: ",ST: ST=ABS(ST) 45 PRINT TAB(39);:INPUT "degrees of freedom: ",ADF: GOTO 220 50 AF=0: OPEN FILE$ FOR INPUT AS #1: INPUT #1,A,C 60 DIM D(A,C),CS(A,C),N$(A),X(A),X2(A),T(A),SD(A),MD(A) 70 FOR T=1 TO A: INPUT #1, T(T): NEXT 80 FOR T=1 TO A: FOR Z=1 TO C: INPUT #1, D(T,Z): NEXT: NEXT 90 FOR T=1 TO A: FOR Z=1 TO T(T): INPUT #1, CS(T,Z): NEXT: NEXT 100 FOR T=1 TO A: INPUT #1, N$(T),X(T),X2(T),MD(T),SD(T): NEXT: CLOSE #1 105 PRINT: PRINT: PRINT TAB(5);"What are the SAMPLE NUMBERS of the 2 groups you want to compare?": PRINT TAB(10); 107 PRINT TAB(10);: INPUT; "Sample #: ",NS1: IF NS1>A THEN GOSUB 110: GOTO 107 ELSE PRINT " `";N$(NS1);"'"; 108 PRINT TAB(45);: INPUT; "Sample #: ",NS2: IF NS2>A THEN GOSUB 110: GOTO 108 ELSE PRINT " `";N$(NS2);"'": GOTO 112 110 BEEP: PRINT TAB(20);FILE$;" has only";A;"samples.": RETURN 112 PRINT TAB(2);"Means = ";TAB(22);X(NS1)/T(NS1);TAB(57);X(NS2)/T(NS2) 115 PRINT:PRINT TAB(10);"Are these INDEPENDENT or PAIRED samples? (I or P) "; 120 INPUT"", A$: IF A$="I" OR A$="i" THEN 180 ELSE IF A$="P" OR A$="p" THEN 130 ELSE 120 130 IF T(NS1)<>T(NS2) THEN BEEP: PRINT : PRINT "These 2 samples do not have the same number of elements---":PRINT TAB(37);"a paired T-TEST cannot be performed.": GOTO 420 140 XD=0: XD2=0: N=T(NS1): ADF=N-1 150 FOR Z=1 TO N: ED=VAL(D(NS1,Z))-VAL(D(NS2,Z)): XD=XD+ED: XD2=XD2+ED*ED: NEXT 160 VD=(XD2-XD*XD/N)/ADF: ST=ABS(XD/N)*SQR(N)/SQR(VD): GOTO 210 180 N1=T(NS1): N2=T(NS2): ADF=N1+N2-2 190 V1=((X2(NS1)-X(NS1)*X(NS1)/N1)+(X2(NS2)-X(NS2)*X(NS2)/N2))/ADF 200 V1=V1*(1/N1+1/N2): ST=ABS(X(NS1)/N1-X(NS2)/N2)/SQR(V1) 210 PRINT :PRINT :PRINT TAB(15);"T = ";ST;TAB(45);"df = ";ADF 220 R=ATN(ST/SQR(ADF)): RC=COS(R): X=1: R2=RC*RC: RS=SIN(R) 230 IF ADF MOD 2=0 THEN 310 240 IF ADF=1 THEN Y=R: GOTO 300 250 Y=RC: FOR Z=3 TO (ADF-2) STEP 2: X=X*R2*(Z-1)/Z: Y=Y+X*RC: NEXT 290 Y=R+RS*Y 300 P=1-Y*0.63662: GOTO 370 310 Y=1: FOR Z=2 TO (ADF-2) STEP 2: X=X*R2*(Z-1)/Z: Y=Y+X: NEXT 350 P=1-Y*RS 370 PLAY "MB O3 L32 MS DF#A O4 DF#A O5 L8 D" 380 PRINT:PRINT TAB(28);"p = ";:IF P<9.99E-07 THEN PRINT"< 10 (-6)" ELSE PRINT P 382 IF AF=1 THEN 422 ELSE COLOR 0,7 385 PRINT:PRINT TAB(8);"The MEANS of these 2 samples are ";:IF P>0.05 THEN PRINT "NOT "; 390 PRINT "significantly different. ": COLOR 7,0 395 PRINT :PRINT "The confidence limits on the DIFFERENCE between the means of these samples":PRINT "can be calculated as: ": PRINT TAB(25); 400 ADF$=STR$(ADF): ADF$=RIGHT$(ADF$,LEN(ADF$)-1): IF A$="i" OR A$="I" THEN 415 410 YD=ABS(XD/N): PRINT YD; "+/- T(";ADF$;") * ";SQR(VD/N): GOTO 420 415 YD=ABS(X(NS1)/N1-X(NS2)/N2): PRINT YD;"+/- T(";ADF$;") * ";SQR(V1) 420 PRINT: PRINT TAB(4);"Do you want perform another T-TEST using this database? (Y or N) ";: GOTO 430 422 PRINT: PRINT TAB(10);"Do you want to evaluate another T value? (Y or N) "; 430 INPUT"",A$: IF A$="Y" OR A$="y" THEN CLS: IF AF=1 THEN 40 ELSE 105 440 END 450 BEEP: PRINT: IF ERL=50 AND ERR=53 THEN PRINT TAB(13); "I cannot find a file by that name on drive "; ELSE 500 460 IF MID$(FILE$,2,1)=":" THEN DR$=LEFT$(FILE$,2) ELSE DR$="A:" 470 PRINT DR$: PRINT "Your files are:": FILES DR$+"*.*": RESUME 20 500 ON ERROR GOTO 0